<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>worker</title>
</head>

<body>
  <script>
    const { ipcRenderer } = require('electron')

    const doWork = (input) => {
      // 一些对CPU要求较高的任务
      return input * 2
    }

    // 我们可能会得到多个 clients, 比如有多个 windows,
    // 或者假如 main window 重新加载了.
    ipcRenderer.on('new-client', (event) => {
      const [port] = event.ports
      port.onmessage = (event) => {
        // 事件数据可以是任何可序列化的对象 (事件甚至可以
        // 携带其他 MessagePorts 对象!)
        const result = doWork(event.data)
        port.postMessage(result)
      }
    })
  </script>
</body>

</html>
